package com.ruoyi.course.service;

import com.ruoyi.course.domain.CourseLesson;
import com.ruoyi.course.dto.CourseScheduleQueryDto;
import com.ruoyi.course.vo.CourseScheduleVo;
import com.ruoyi.course.vo.SelectOptionVo;

import java.util.List;

/**
 * 课表Service接口
 * 
 * @author ruoyi
 * @date 2025-06-12
 */
public interface ICourseLessonService 
{
    /**
     * 查询课表
     * 
     * @param lessonId 课表主键
     * @return 课表
     */
    public CourseLesson selectCourseLessonByLessonId(Integer lessonId);

    /**
     * 查询课表列表
     * 
     * @param courseLesson 课表
     * @return 课表集合
     */
    public List<CourseLesson> selectCourseLessonList(CourseLesson courseLesson);

    /**
     * 新增课表
     * 
     * @param courseLesson 课表
     * @return 结果
     */
    public int insertCourseLesson(CourseLesson courseLesson);

    /**
     * 修改课表
     * 
     * @param courseLesson 课表
     * @return 结果
     */
    public int updateCourseLesson(CourseLesson courseLesson);

    /**
     * 批量删除课表
     * 
     * @param lessonIds 需要删除的课表主键集合
     * @return 结果
     */
    public int deleteCourseLessonByLessonIds(Integer[] lessonIds);

    /**
     * 删除课表信息
     * 
     * @param lessonId 课表主键
     * @return 结果
     */
    public int deleteCourseLessonByLessonId(Integer lessonId);

    /**
     * 获取校区选项列表
     * 
     * @return 校区选项列表
     */
    public List<SelectOptionVo> getCampusOptions();

    /**
     * 根据校区id获取班级选项列表
     * 
     * @param campusId 校区id
     * @return 班级选项列表
     */
    public List<SelectOptionVo> getClassOptionsByCampusId(Integer campusId);

    /**
     * 获取课程表日历数据
     * 
     * @param queryDto 查询条件
     * @return 课程表日历数据
     */
    public CourseScheduleVo getCourseScheduleCalendar(CourseScheduleQueryDto queryDto);
}
